// pages/clubVerifyResult/clubVerifyResult.js
const util = require('../../utils/util.js');
const api = require('../../config/api.js');
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 审核状态：0-未提交 1-待审核 2-审核通过 3-审核拒绝
    auditStatus: null,
    // 审核状态文本
    statusText: "审核中",
    // 拒绝理由
    memo: "",
    // 待审核提示信息
    tips: "请联系管理员",
    // 是否显示重新提交按钮
    showResubmitButton: false,
    // 用户信息
    userInfo: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log("审核结果页面加载");
    // this.loadAuditStatus();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 每次显示页面时重新加载审核状态和用户信息
    this.loadAuditStatus();
    this.loadUserInfo();
  },

  /**
   * 加载审核状态
   */
  loadAuditStatus: function () {
    const that = this;

    // 先检查登录状态
    util.executeWithLoginCheck(
      () => {
        // 用户已登录，获取审核状态
        that.getAuditStatus();
      },
      () => {
        // 用户未登录，提示登录
        wx.showToast({
          title: "请先登录",
          icon: "none",
          duration: 2000
        });
        setTimeout(() => {
          wx.navigateBack();
        }, 2000);
      }
    );
  },

  /**
   * 获取审核状态
   */
  getAuditStatus: function () {
    const that = this;

    // 调用API获取审核状态
    util
      .request(api.UserAudit, {}, "POST")
      .then(function (res) {
        console.log("审核状态API响应:", res);

        // 处理API响应
        let auditStatus = null;
        let memo = "";
        let tips = "";

        // 检查响应格式
        if (res.status !== undefined) {
          // 直接返回 {status: 1, memo: '', tips: ''} 格式
          auditStatus = res.status;
          memo = res.memo || "";
          tips = res.tips || "";
        } else if (res.data && res.data.status !== undefined) {
          // 包装在 data 中的格式
          auditStatus = res.data.status;
          memo = res.data.memo || "";
          tips = res.data.tips || "";
        } else if (res.errno === 0 && res.data) {
          // {errno: 0, data: {status: 1, memo: '', tips: ''}} 格式
          auditStatus = res.data.status;
          memo = res.data.memo || "";
          tips = res.data.tips || "";
        } else {
          console.error("未知的API响应格式:", res);
          wx.showToast({
            title: "获取审核状态失败",
            icon: "none",
            duration: 2000
          });
          return;
        }

        // 设置状态文本和按钮显示
        let statusText = "";
        let showResubmitButton = false;

        if (auditStatus === 0) {
          statusText = "未提交";
        } else if (auditStatus === 1) {
          statusText = "审核中";
        } else if (auditStatus === 2) {
          statusText = "审核通过";
        } else if (auditStatus === 3) {
          statusText = "审核拒绝";
          showResubmitButton = true;
        } else {
          statusText = "未知状态";
        }

        that.setData({
          auditStatus: auditStatus,
          statusText: statusText,
          memo: memo,
          tips: tips,
          showResubmitButton: showResubmitButton
        });
      })
      .catch(function (err) {
        console.error("获取审核状态失败:", err);
        wx.showToast({
          title: "获取审核状态失败",
          icon: "none",
          duration: 2000
        });
      });
  },

  /**
   * 加载用户信息
   */
  loadUserInfo: function () {
    const that = this;

    // 先检查登录状态
    util.executeWithLoginCheck(
      () => {
        // 用户已登录，获取用户信息
        that.getUserInfo();
      },
      () => {
        // 用户未登录，不获取用户信息
        console.log("用户未登录，跳过获取用户信息");
      }
    );
  },

  /**
   * 获取用户信息
   */
  getUserInfo: function () {
    const that = this;

    // 调用API获取用户信息
    util
      .request(api.UserInfo, {}, "POST")
      .then(function (res) {
        console.log("用户信息API响应:", res);

        // 标准化响应数据
        const normalizedRes = util.normalizeApiResponse(res);
        console.log("标准化后的响应:", normalizedRes);

        if (normalizedRes.success) {
          // 处理用户信息数据
          let userInfo = null;

          if (normalizedRes.data) {
            // 如果返回的是用户信息对象
            if (normalizedRes.data.userInfo) {
              userInfo = normalizedRes.data.userInfo;
            } else if (normalizedRes.data.id || normalizedRes.data.userId) {
              // 如果返回的就是用户信息对象
              userInfo = normalizedRes.data;
            }
          }

          // 保存用户信息到页面数据
          if (userInfo) {
            that.setData({
              userInfo: userInfo
            });
            console.log("用户信息加载成功:", userInfo);
          } else {
            console.warn("用户信息数据格式异常:", normalizedRes.data);
          }
        } else {
          console.error("获取用户信息失败:", normalizedRes.message);
          // 获取用户信息失败不影响页面显示，只记录错误
        }
      })
      .catch(function (err) {
        console.error("获取用户信息失败:", err);
        // 获取用户信息失败不影响页面显示，只记录错误
      });
  },

  /**
   * 重新提交按钮点击事件
   */
  onResubmitClick: function () {
    // 跳转到俱乐部验证页面
    wx.navigateTo({
      url: "/pages/clubVerify/clubVerify",
      success: function () {
        console.log("跳转到俱乐部验证页面成功");
      },
      fail: function (err) {
        console.error("跳转到俱乐部验证页面失败:", err);
        wx.showToast({
          title: "页面跳转失败",
          icon: "none",
          duration: 2000
        });
      }
    });
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      title: "俱乐部审核结果",
      path: "/pages/clubVerifyResult/clubVerifyResult"
    };
  }
});

